﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

namespace _2D
{
    public class Video
    {
        #region "Variables Privadas"

        // Instancia de objeto para el manejo de video.
        private Microsoft.Xna.Framework.Media.Video videointro;

        // Instancia de objeto para el manejo del reproductor de video.
        private VideoPlayer reproductorvideo;

        // Instancia del lienzo en el que vamos a proyectar el video.
        private Rectangle LienzoVideo;

        #endregion

        #region "Procedimiento LOADCONTENT"

        public void Load(ContentManager content, string nombrevideo)
        {
            // Inicializamos el lienzo en el que proyectaremos el video 800x600.
            LienzoVideo = new Rectangle(0, 0, 800, 600);

            // Cargamos el video que queremos reproducir en la intro del juego.
            videointro = content.Load<Microsoft.Xna.Framework.Media.Video>(nombrevideo);

            // Inicializamos el reproductor de video.
            reproductorvideo = new VideoPlayer();
        }

        #endregion

        #region "Procedimiento UPDATE"

        public void Update()
        {
            // Si es la primera ejecución del juego reproducimos el video de la intro.
            if (reproductorvideo.State != MediaState.Playing)
                reproductorvideo.Play(videointro);
        }

        #endregion

        #region "Procedimiento DRAW"

        public void Draw(SpriteBatch batch)
        {
            // Llamar al método GetTexture si el reproductor está parado produce una excepción
            if (reproductorvideo.State != MediaState.Stopped)
            {
                batch.Draw(reproductorvideo.GetTexture(), LienzoVideo, Color.White);
            }
        }

        #endregion
    }
}
